#ifndef QxWellDataIO_HPP
#define QxWellDataIO_HPP

#include "QxWellLogDefine.hpp"
#include "QxWellInfoDefine.hpp"

#include <QVector>
#include <QStringList>

class QxWellDataIO
{
public:

  QxWellDataIO();
  virtual ~QxWellDataIO();

  virtual QxWellInfoDefine wellInfoDefine() const=0;
  virtual void setWellInfoDefine( const QxWellInfoDefine& )=0;

  virtual QVector<QxWellLogDefine> wellLogDefines() const=0;
  virtual bool insertWellLogDefine( const QxWellLogDefine& )=0;
  virtual bool removeWellLogDefine( const QxWellLogDefine& )=0;

  virtual QVector<float> data( const QString& wellLogName ) const=0;
  virtual void setData( const QString& wellLogName, const QVector<float>& data )=0;

  virtual QStringList queryWellLogNames()=0;

  virtual void clear()=0;
};

#endif // QXWELLDATAIO_HPP
